package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 任务信息对象 t_task_info
 * 
 * @author ruoyi
 * @date 2024-04-16
 */
public class TTaskInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务id */
    private Long id;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 任务名称编码 */
    @Excel(name = "任务名称编码")
    private String taskNameCode;

    /** 任务图片 */
    @Excel(name = "任务图片")
    private String taskUrl;

    /** 任务赏金 */
    @Excel(name = "任务赏金")
    private BigDecimal taskMoney;

    /** 任务数量 */
    @Excel(name = "任务数量")
    private Integer taskNum;

    /** 完成数量 */
    @Excel(name = "完成数量")
    private Integer finishNum;

    /** 接取任务数量 */
    @Excel(name = "接取任务数量")
    private Integer abjectNum;

    /** 接任务后有效时间 */
    @Excel(name = "接任务后有效时间")
    private Integer finishTime;

    /** 任务结束时间不设置表示长期有效 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskFinishTime;

    /** 活动介绍 */
    @Excel(name = "活动介绍")
    private String taskInfo;

    /** 介绍编码 */
    @Excel(name = "介绍编码")
    private String taskInfoCode;

    /** 需要采集截取任务用户信息（0-所有；1-文本信息；2-图片信息） */
    @Excel(name = "需要采集截取任务用户信息", readConverterExp = "0=-所有；1-文本信息；2-图片信息")
    private Integer needInfo;

    /** 视频教程 */
    @Excel(name = "视频教程")
    private String teachView;

    /** 文档教程 */
    @Excel(name = "文档教程")
    private String teachWord;

    /** 审核时间 */
    private Integer auditTime;

    /** 步骤描述链接（做单步骤）有就展示，没有就不展示 */
    @Excel(name = "步骤描述链接", readConverterExp = "做=单步骤")
    private String procedureDoc;

    /** 审核状态（0-已拒绝，发布失败；1-发布待审核；2-审核通过已发布；） */
    @Excel(name = "审核状态", readConverterExp = "0=-已拒绝，发布失败；1-发布待审核；2-审核通过已发布；")
    private Integer auditStatus;

    /** 发布人 */
    @Excel(name = "发布人")
    private Long userId;

    @Excel(name = "发布人")
    private Integer isDelete;


    private Integer version;
    @Excel(name = "任务类型：1-新手任务；2-日常任务")
    private Integer taskType;



    private Integer sortNum;
    @Excel(name = "任务详情参照图")
    private String exampleImg;

    @Excel(name = "任务详情需要的文字信息")
    private String needContent;

    public String getExampleImg() {
        return exampleImg;
    }

    public void setExampleImg(String exampleImg) {
        this.exampleImg = exampleImg;
    }

    public String getNeedContent() {
        return needContent;
    }

    public void setNeedContent(String needContent) {
        this.needContent = needContent;
    }

    public Integer getSortNum() {
        return sortNum;
    }

    public void setSortNum(Integer sortNum) {
        this.sortNum = sortNum;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    /**上架状态（1-下架；2-上架） */
    @Excel(name = "上架状态", readConverterExp = "1-下架；2-上架")
    private Integer shelfStatus;
    public Integer getShelfStatus() {
        return shelfStatus;
    }

    public void setShelfStatus(Integer shelfStatus) {
        this.shelfStatus = shelfStatus;
    }
    @TableField(exist = false)
    List<TBaseInfo> baseInfos;

    public List<TBaseInfo> getBaseInfos() {
        return baseInfos;
    }

    public void setBaseInfos(List<TBaseInfo> baseInfos) {
        this.baseInfos = baseInfos;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTaskName(String taskName)
    {
        this.taskName = taskName;
    }

    public String getTaskName()
    {
        return taskName;
    }
    public void setTaskNameCode(String tastNameCode)
    {
        this.taskNameCode = tastNameCode;
    }

    public String getTaskNameCode()
    {
        return taskNameCode;
    }
    public void setTaskUrl(String taskUrl) 
    {
        this.taskUrl = taskUrl;
    }

    public String getTaskUrl() 
    {
        return taskUrl;
    }
    public void setTaskMoney(BigDecimal taskMoney) 
    {
        this.taskMoney = taskMoney;
    }

    public BigDecimal getTaskMoney() 
    {
        return taskMoney;
    }
    public void setTaskNum(Integer taskNum)
    {
        this.taskNum = taskNum;
    }

    public Integer getTaskNum()
    {
        return taskNum;
    }
    public void setFinishNum(Integer finishNum)
    {
        this.finishNum = finishNum;
    }

    public Integer getFinishNum()
    {
        return finishNum;
    }
    public void setAbjectNum(Integer abjectNum)
    {
        this.abjectNum = abjectNum;
    }

    public Integer getAbjectNum()
    {
        return abjectNum;
    }
    public void setFinishTime(Integer finishTime)
    {
        this.finishTime = finishTime;
    }

    public Integer getFinishTime()
    {
        return finishTime;
    }
    public void setTaskFinishTime(Date taskFinishTime) 
    {
        this.taskFinishTime = taskFinishTime;
    }

    public Date getTaskFinishTime() 
    {
        return taskFinishTime;
    }
    public void setTaskInfo(String taskInfo) 
    {
        this.taskInfo = taskInfo;
    }

    public String getTaskInfo() 
    {
        return taskInfo;
    }
    public void setTaskInfoCode(String taskInfoCode) 
    {
        this.taskInfoCode = taskInfoCode;
    }

    public String getTaskInfoCode() 
    {
        return taskInfoCode;
    }
    public void setNeedInfo(Integer needInfo) 
    {
        this.needInfo = needInfo;
    }

    public Integer getNeedInfo() 
    {
        return needInfo;
    }
    public void setTeachView(String teachView) 
    {
        this.teachView = teachView;
    }

    public String getTeachView() 
    {
        return teachView;
    }
    public void setTeachWord(String teachWord) 
    {
        this.teachWord = teachWord;
    }

    public String getTeachWord() 
    {
        return teachWord;
    }

    public Integer getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Integer auditTime) {
        this.auditTime = auditTime;
    }

    public void setProcedureDoc(String procedureDoc)
    {
        this.procedureDoc = procedureDoc;
    }

    public String getProcedureDoc() 
    {
        return procedureDoc;
    }
    public void setAuditStatus(Integer auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() 
    {
        return auditStatus;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }
}
